# -*- coding:utf-8 -*-
'''
Created on 18.01.2010

@author: r4smus
'''

class Datum09(object):
    '''
    Die Klasse Datum09 dient dazu um Änderungen an einem Datum vorzunehmen, wie Tage hinzuzuaddieren oder das
    Datum Formatiert mit Wochentag auszugeben. Initialisiert wird die Klasse immer mit dem 4.2.2009 als Datum.
    Zudem beschränkt sich der Datumsbereich auf das Jahr 2009.
    '''
    
    __tag = 4
    __monat = 2
    __hilfsVariable = (31,28,31,30,31,30,31,31,30,31,30,31)
    __wochenTage = ('Donnerstag', 'Freitag', 'Samstag', 'Sonntag', 'Montag', 'Dienstag', 'Mittwoch') #1. Tag im Jahr 2009 ist ein Donnertag
    
    def wochenTag(self):
        '''
        Gibt den aktuellen Wochentag zurück
        >>> datum1 = Datum09()
        >>> print datum1.wochenTag()
        Mittwoch
        '''
        tageGes = 0
        for i in range(1, self.__monat): #Gesamtanzahl der Tage für das Datum aufsummieren
            tageGes += self.__hilfsVariable[i-1]
        tageGes += self.__tag
        return self.__wochenTage[(tageGes % 7) -1] #Mithilfe der Gesamtanzahl der Tage auf den Wochentag schliessen (%7)
    
    def ausgabe(self):
        '''
        Gibt das aktelle Datum formatiert in der Konsole aus
        >>> datum2 = Datum09()
        >>> datum2.ausgabe()
        Mittwoch, 4.2.2009
        '''
        print self.wochenTag() + ', ' + str(self.__tag) +'.' +str(self.__monat) +'.2009'
    
    def addiereTage(self, tage):
        '''
        Addiert bzw. subtrahiert vom aktuellen Datum eine gewisse Anzahl von Tagen
        >>> datum3 = Datum09()
        >>> datum3.addiereTage(-3)
        >>> datum3.ausgabe()
        Sonntag, 1.2.2009
        '''
        if type(tage) != int:
            print 'Bitte nur Integer Zahlen als Parameter verwenden'
        tageGes = 0
        for i in range(1, self.__monat):  #Gesamtanzahl der Tage für das Datum aufsummieren
            tageGes += self.__hilfsVariable[i-1]
        tageGes += self.__tag + tage # zu tageGes noch die als Parameter übergebenen Tage addieren
        i, self.__monat = 0, 1
        while tageGes > i:      #mithilfe der Hilfsvariabeln auf den  Monat und Tag schliessen
            tageGes -= self.__hilfsVariable[i]
            self.__monat += 1
            i += 1
        self.__tag = tageGes
        
    
             
        
        
   


 
        